The invention pertains to digital data processing and, more particularly, to methods and apparatus for maintaining the high-availability of software processes, e.g., as a holistic system comprising an operating system (OS) and applications—independent of the hardware. The invention has application, by way of non-limiting example, in client-server and other network environments, where it can used (by way of non-limiting example) in maintaining the high-availability of applications executing on server appliances.
High-availability is one of the “holy grails” of enterprise computing. To date, solutions provided by the art have been largely limited to hardware redundancy. Thus, for example, devices that are used with mission-critical data are often duplicated on a per device basis. This is most commonly seen in storage devices, where it is becoming increasingly common to incorporate redundant disk drives in a computer—or, more commonly, on a network—to mirror each bit of data stored in a primary drive on its secondary (or shadow) drive. Other examples of hardware high-availability solutions include the duplication of central processing units and other lower-level computer components. By operating one or more components as shadow(s) of a primary component and by continuously monitoring all components, is often possible to detect and negate erroneous operation of the primary without interruption of service.
A problem with the prior art solutions is cost. Though sometimes justified in mission-critical applications, duplication of computer devices or the underlying components rapidly drives up the cost of any computer system. In many enterprise applications, the level of criticality does not justify those costs.
There is, accordingly, a need for lower cost digital data processing solutions that provide high availability. Such is an object of invention. More broadly, an object invention is to provide improved systems, methods and apparatus for digital data processing. A further object, in addition to providing such systems, methods and apparatus as facilitate the provision of high availability at lower cost, is to provide such solutions as provide redundancy at the application, program and/or process execution level—not merely the hardware level.
A further such object is to provide such methods and apparatus as are amenable to use in networking environments, as well as non-networking environments. A still further object invention is to provide such methods and apparatus as are amenable to use with vendor application-level (and other) solutions.